package com.smartboot.plus.wapper;

import com.alibaba.fastjson2.JSONObject;
import com.smartboot.plus.ignite.cache.MqttMetricCache;
import com.smartboot.plus.support.BaseMqttEntityWrapper;
import com.smartboot.plus.utils.DateUtil;
import com.smartboot.plus.vo.MqttNodeInfoVO;
import com.smartboot.plus.vo.MqttOtherVO;

public class NodeInfoWrapper extends BaseMqttEntityWrapper<MqttMetricCache, MqttNodeInfoVO> {

    public static NodeInfoWrapper build() {
        return new NodeInfoWrapper();
    }

    @Override
    public MqttNodeInfoVO entityVO(MqttMetricCache entity) {
        if (entity == null) {
            return null;
        }
        MqttNodeInfoVO smartMqttNodeInfoVO = new MqttNodeInfoVO();
        //节点id
        smartMqttNodeInfoVO.setNodeId(entity.getNodeId());

        //节点状态
        smartMqttNodeInfoVO.setStatus(entity.getStatus());
        //运行时间
        smartMqttNodeInfoVO.setRuntime(DateUtil.runtime(entity.getUpAt().getTime()));
        //上线时间
        smartMqttNodeInfoVO.setUpTime(DateUtil.format(entity.getUpAt(), DateUtil.PATTERN_DATETIME));

        //节点信息**************************
        // 版本
        MqttOtherVO mqttOtherVO = JSONObject.parseObject(entity.getOther(), MqttOtherVO.class);
        smartMqttNodeInfoVO.setVersion(mqttOtherVO.getVersion());
        smartMqttNodeInfoVO.setVmVersion(mqttOtherVO.getVmVersion());
        smartMqttNodeInfoVO.setOsName(mqttOtherVO.getOsName());

        return smartMqttNodeInfoVO;
    }
}

